{{tag>Intrepid matériel gps BROUILLON}}

----

======GPSBabel======

{{ http://www.gpsbabel.org/artwork/PBGPSBabel.gif}}

GPSBabel est un logiciel permettant de 
  * Récupérer/envoyer les points de passages (waypoints), les traces (tracks) et routes vers un appareil [[:GPS]].
  * Les convertir entre les différents formats GPS et logiciels de cartographie.

GPSBabel support les format //Garmin MapSource//, //Garmin training center//,  //Magellan MapSend//, //GPX//, //Geocaching *.loc//.

Il gère la communication USB avec les appareils //Garmin// et //Magelan//.

<note important>gpsbabel ne permet pas de convertir ou gérer les cartes. (Il ne remplacera pas un logiciel tel que //City Navigator//)</note>

<note>Certains exemples de cette page ont été réalisés sous Ubuntu [[:intrepid|Intrepid Ibex]] avec un GPS //Garmin Forerunner 205// et d'autres sous [[:edgy|Edgy Eft]] avec un GPS //Garmin etrex venture CX//. Les différentes commandes devraient garder la même syntaxe avec d'autres gps.
</note>


=====Pré-requis=====

  * Disposer des [[:sudo|droits d'administration]] ;
  * Disposer d'une connexion à Internet configurée et activée ;
  * Avoir activé l'accès aux [[:depots#universe_et_multiverse|dépôts Universe]] ;
  * Avoir [[:tutoriel:comment_installer_un_paquet|installé les paquets]] **libc6 libexpat1 libusb-0.1-4 geotoad**



=====Installation=====

L'installation est très simple. Il vous suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **gpsbabel** ou directement avec ce lien [[apt://gpsbabel|gpsbabel]]

=====Utilisation=====

====Format général====
L'utilisation des commandes gpsbabel suit toujours un même schéma de base qui renseigne :

  * **-i** : le format d'entrée
  * **-f** : le fichier d'entrée et son chemin
  * **-o** : le format de sortie
  * **-F** : le fichier de sortie et son chemin

Ce qui nous donne donc de manière générique :

<code>gpsbabel -i format_d_entrée -f fichier_d_entrée -o format_de_sortie -F fichier_de_sortie</code>

====Conversion de formats====

GPSBabel permet également la conversion de différents formats. Ainsi il est possible de convertir la liste des caches de votre région dans un autre format.

Le site du logiciel propose une [[http://www.gpsbabel.org/capabilities.html|liste des formats supportés]] par GPSBabel.

Un exemple (celui qui m'est le plus utile) : **la conversion du format geocaching.com-*.loc en format GPX** (compris par mon gps)

<code>
gpsbabel -i geo -f /home/votre_dossier_personnel/geocaching.loc -o gpx -F /home/votre_dossier_personnel/geocaching.gpx
</code>

Un autre exemple  : **la conversion du format GoogleEarth-*.kml en format GPX**

<code>
gpsbabel -i kml -f /home/votre_dossier_personnel/geocaching.kml -o gpx -F /home/votre_dossier_personnel/geocaching.gpx
</code>

Comme on peut le constater dans cet exemple, la seule difficulté va donc consister à connaître le nom à mettre dans la commande pour déterminer les formats.
Il ne sont pas tous intuitif (**//*.loc//** et nommé **//geo//** dans notre exemple)

<note important>gpsbabel ne gere le format **tcx** ( Garmin training center ) qu'en tant que fichier de sortie. Il n'est donc pas possible de convertir un fichier de ce format vers un autre format</note>

==== Communiquer avec le GPS ====

Rappelons nous que dans Linux tout est considéré comme un fichier... gpsbabel va donc accéder au gps a travers un fichier

=== Retrouver le chemin de sa connexion USB ===

== Modeles Garmin ==
Depuis [[:hardy|Hardy Heron]] l'accès aux GPS Garmin est directement géré par le noyau et se fera a travers **usb:**

  * "fichier" de source : **-f usb:**
  * ou de destination : **-F usb:**

Pour vérifier que son GPS Garmin est bien connecté sur le port USB et détecté par gpsbabel on peut utiliser la commande suivante:
<code>
gpsbabel -i garmin -f usb:-1
</code>

On obtient une sortie de la forme suivante si un GPS est détecté:
<file>
0 3489732362 484 Forerunner205 Software Version 2.80
</file>
<note>Pour plus de détails sur la connection des GPS garmin se reporter a [[gps#Garmin|la section Garmin de la page gps]]</note>

== Autres modeles ==
Les GPS non geres nativement par le noyau sont souvent rattaches au port ttyUSB :
    *  "fichier" de source : **-f /dev/ttyUSB0**
    *  ou de destination : **-F /dev/ttyUSB0**


===Récupérer des données du gps===
Attelons nous à rapatrier les données de notre gps. Ces informations sont les waypoints, les routes et les traces (log des déplacements).

Pour fonctionner avec les formats //magellan// et //garmin//, il faudra faire appel à des flags supplémentaire dans les commandes :

  * **-t** : Pour les tracks
  * **-r** : Pour les routes
  * **-w** : Pour les waypoints

Voici donc un exemple pour récupérer la liste des waypoints enregistrée dans le gps de marque **garmin** et de modèle **etrex venture cx**

<code>
gpsbabel -w -i garmin -f usb: -o gpx -F liste_waypoints.gpx
</code>

La liste des waypoints sera donc ici enregistrée, au format GPX, dans le fichier nommé « liste_waypoints.gpx ».

Nous pouvons naturellement récupérer l'ensemble des enregistrements (tracks, waypoints, routes) en combinant tous les flags dans la commande :

<code>
 gpsbabel -t -r -w -i magellan -f /dev/ttyUSB0 -o gpx -F backup.gpx
</code>

Cette commande créera un fichier, au format gpx, nommé backup.gpx contenant toutes les traces, routes et waypoints d'un gps de type magellan.

<note tip>Passer d'un GPS Garmin à un GPS Magellan est donc assez simple avec gpsbabel : il suffit de spécifier le format (Magellan ou Garmin...) simple non ? ;-)</note>

=== Fournir des données au GPS ===

Transférer la liste des waypoints ou la route de votre futur randonnée vers votre gps (afin de vous éviter des les entrer un à un sur le gps lui-même) est relativement simple si vous avez suivit jusqu'ici, puisqu'il suffira d'inverser source et destination...

Les flags **-w**, **-r**, et **-t** gardent la même signification que dans le paragraphe précédent.

==Un exemple pour éclaircir les idées??==

<note>On suppose que vous disposez déjà d'un fichier dans un format reconnu par GPSBabel listant votre route...

Pour notre exemple ce fichier s'appellera //rando1.gpx// et sera "codé" au format GPX (format normalisé basé sur le XML)</note>

Envoyons donc notre route pour cette futur randonnée vers notre GPS Garmin :

<code>
gpsbabel -r -i gpx -f rando1.gpx -o garmin -F usb:
</code>




====geocaching.com====


Si vous êtes comme moi un adepte du geocaching, et que vous utilisez souvent le site geocaching.com, vous pouvez [[http://doc.ubuntu-fr.org//tutoriel/script_shell?redirect=1|creer un script bash]] qui vous permet d'envoyer un fichier loc directement sur votre GPS depuis le site. Pour cela, il vous suffit de créer le script « send2gps » suivant :

<code bash>
#!/bin/sh

gpsbabel -w -i geo -f "$1" -o garmin -F usb:
</code>

Dans cette exemple, j'utilise un GPS de type garmin branché sur le port USB. Je vous laisse biensur le soin de le modifier selon votre configuration et votre gps.
Ensuite rendez vous sur le site de geocaching, et tester votre script en cliquant sur un fichier "loc" à telecharger. Votre navigateur devrait vous demander si vous voulez le telecharger. Choisissez tout simplement "ouvrir avec" et sélectionner votre script "send2gps" à la place.


Pour le rendre utilisable par le navigateur, il ne faut pas oublier de le rendre exécutable et donc lui donner les droits adéquat :
<code>
chmod +x send2gps.sh
</code>

===== Problèmes =====


==== Connexion USB défectueuse avec un GPS Garmin ====

Depuis la version 8.04 d'ubuntu [[hardy|Hardy Héron]], le module **garmin_gps** qui permettait d'accéder aux GPS garmin à été blacklisté[[http://wouter.horre.be/node/56|]] 

<note tip>
Pour plus d'informations sur comment communiquer avec ces GPS se reporter a [[gps#Garmin|la section Garmin de la page gps]]
</note>

===== Liens =====


  * [[http://www.gpsbabel.org/|Site officiel de gpsbabel]] [en]
  * [[wpfr>GPX_(format_de_fichier)|Le fichier GPX : wikipedia]] [fr]
  * [[http://www.topografix.com/gpx.asp|Le site officiel du GPX]] [en]
  * [[http://sourceforge.net/projects/garmin-gps/|Le pilote noyau 'garmin_gps' pour connecter un GPS Garmin via le port usb]] [en]

----

//Contributeurs : [[utilisateurs:Efhache84]].
Corrections :[[utilisateurs:enchained|_Enchained]].//